#include <QVariant>
#include <QSqlError>
#include "acceso.h"
//#include "log.h"
#include "datos.h"

Acceso::Acceso()
{
    registrosAfectados = 0;
}

Acceso::~Acceso()
{
}

bool Acceso::ejecutar(const QString& sql)
{   
    QSqlQuery query;
    return ejecutar(query, sql);
}

bool Acceso::ejecutar(QSqlQuery& query, const QString& sql)
{
    bool exito = query.exec(sql);
    registrosAfectados = query.numRowsAffected();

    if (!exito) {        
        //Log::instancia()->mostrar(sql);
        QSqlError sqlError = query.lastError();
        error(sqlError.text());        
    }

    return exito;
}

bool Acceso::ejecutar(QSqlQuery& query)
{
    bool exito = query.exec();

    if (!exito) {        
        error(query.lastError().text());        
    }

    return exito;
}

int Acceso::getRegistrosAfectados()
{
    return registrosAfectados;
}

void Acceso::error(QString mensaje)
{
    mensajeError = mensaje;
    //Log::instancia()->mostrar(mensajeError.toAscii());
}

//int Acceso::valorActualSecuencia(const QString& nombreSecuencia)
//{
//    QSqlQuery query;
//    query.exec("select " + nombreSecuencia + ".currval from DUAL");
//    if (query.next()) {
//        return query.value(0).toInt();
//    } else {
//        return ID_INVALIDO;
//    }
//}
